package com.carefree.bookmall.dao;


import com.carefree.bookmall.common.vo.BookQueryVo;
import com.carefree.bookmall.entity.Book;

import java.util.List;

/**
 * 书籍
 *
 * @author Aurora
 */
public interface BookMapper {

    /**
     * 添加一本书籍
     *
     * @param book 添加的book信息
     * @return 受影响行数
     */
    public int addBook(Book book);

    /**
     * 删除一本书籍
     *
     * @param bookId book的id
     * @return 受影响行数
     */
    public int removeBook(Integer bookId);

    /**
     * 修改一本书籍
     *
     * @param book 修改的book对象信息
     * @return 受影响行数
     */
    public int modifyBook(Book book);

    /**
     * 查询全部书籍
     *
     * @param pageNum  页码
     * @param pageSize 每页显示记录数
     * @return
     */
    public List<BookQueryVo> selectBooks(int pageNum, int pageSize);

    /**
     * 查询图书总数
     *
     * @return 图书总数
     */
    public int selectCountOfBooks();

    /**
     * 根据搜索关键字分页查询全部书籍
     *
     * @param keyword
     * @param pageNum
     * @param pageSize
     * @return
     */
    public List<BookQueryVo> selectBooksByKeyword(String keyword, int pageNum, int pageSize);

    /**
     * 根据关键字查询图书总数
     *
     * @param keyword 查询关键字
     * @return 图书总数
     */
    public int selectCountOfBooksByKeyword(String keyword);

    /**
     * 按bookId查询一本书籍
     *
     * @param bookId
     * @return Book
     */
    public BookQueryVo selectBookById(Integer bookId);

    /**
     * 根据bookId查询书籍
     *
     * @param bookId
     * @return
     */
    public Book selectBookByBookId(Integer bookId);

    /**
     * 按isbn查询一本书籍
     *
     * @param bookIsbn 国际标准书号
     * @return Book
     */
    public BookQueryVo selectBookByIsbn(String bookIsbn);

    /**
     * 删除书籍信息
     *
     * @param bookTypeId 类别id
     * @return 受影响行数
     */
    public int deleteBookByTypeId(Integer bookTypeId);

    /**
     * 根据主键id查询对应商品名称
     *
     * @param bookId 主键id
     * @return
     */
    String selectNameById(Integer bookId);
}

